package com.doit.day05

import scala.io.Source
import scala.util.Sorting

/**
 * 数据如下  :每个字母代表一个人 ,  统计任意一个人和其他人的共同好友
 * A:B,C,D,F,E,O
 * B:A,C,E,K
 * C:F,A,D,I
 * D:A,E,F,L
 * E:B,C,D,M,L
 * F:A,B,C,D,E,O,M
 * G:A,C,D,E,F
 * H:A,C,D,E,O
 * I:A,O
 * J:B,O
 * K:A,C,D
 * L:D,E,F
 * M:E,F,G
 * O:A,H,I,J
 */
object SameFriend {
  def main(args: Array[String]): Unit = {
    //1.明确需求
    //2.如何去做==》1.读数据
    val meAndFriends: List[(String, Array[String])] = Source.fromFile("data/friend")
      .getLines()
      .toList
      .map(line => {
        val arr: Array[String] = line.split(":")
        val me: String = arr(0)
        //B,C,D,F,E,O
        val friends: Array[String] = arr(1).split(",")
        (me, friends)
      })

    //你想要干什么  装map中，key：自己  value：我的朋友们 将朋友们都装在集合里面
    //==》map

    //你又想干啥了？
    for(meIndex <- 0 until meAndFriends.length-1){
      for(friendIndex <- meIndex+1 until meAndFriends.length ){
        //A
        val me: String = meAndFriends(meIndex)._1
        //B,C,D,F,E,O
        val friends: Array[String] = meAndFriends(meIndex)._2
        //B
        val you: String = meAndFriends(friendIndex)._1
        //A,C,E,K
        val yourFriends: Array[String] = meAndFriends(friendIndex)._2

        //获取到共同好友
        val sameFriends: List[String] = friends.intersect(yourFriends).toList
        println(s"$me 和 $you 的共同好友是：$sameFriends")
      }
    }


  }
}
